package cn.iocoder.yudao.module.crm.controller.admin.customerbill.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;
import java.util.*;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 客户账单新增/修改 Request VO")
@Data
public class CustomerBillSaveReqVO {

    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "10756")
    private Long id;

    @Schema(description = "price_id", example = "5958")
    private Long priceId;

    @Schema(description = "customer_id", requiredMode = Schema.RequiredMode.REQUIRED, example = "18916")
    @NotNull(message = "customer_id不能为空")
    private Long customerId;

    @Schema(description = "日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "日期不能为空")
    private LocalDate billDate;

    @Schema(description = "备注", example = "你说的对")
    private String remark;

    @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "订单号不能为空")
    private String orderNo;

    @Schema(description = "船公司名称", example = "赵六")
    private String companyName;

    @Schema(description = "船公司代码", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "船公司代码不能为空")
    private String companyCode;

    @Schema(description = "柜型", example = "2")
    private String containerType;

    @Schema(description = "柜型数量", example = "32394")
    private Integer containerCount;

    @Schema(description = "船公司费")
    private BigDecimal shipFee;

    @Schema(description = "码头费用")
    private BigDecimal dockFee;

    @Schema(description = "手续费")
    private BigDecimal serviceFee;

    @Schema(description = "船公司费")
    private BigDecimal shipFeeUnit;

    @Schema(description = "码头费用")
    private BigDecimal dockFeeUnit;

    @Schema(description = "手续费")
    private BigDecimal serviceFeeUnit;

    @Schema(description = "总费用")
    private BigDecimal totalFee;

    @Schema(description = "账单状态 1-待支付，2-已支付", example = "2")
    private Integer billStatus;

    @Schema(description = "支付日期")
    private LocalDateTime payTime;

}
